/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.emftext.language.office;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see org.emftext.language.office.OfficeFactory
 * @model kind="package"
 * @generated
 */
public interface OfficePackage extends EPackage {
	/**
   * The package name.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   */
	String eNAME = "office";

	/**
   * The package namespace URI.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   */
	String eNS_URI = "http://emftext.org/office";

	/**
   * The package namespace name.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   */
	String eNS_PREFIX = "office";

	/**
   * The singleton instance of the package.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   */
	OfficePackage eINSTANCE = org.emftext.language.office.impl.OfficePackageImpl.init();

	/**
   * The meta object id for the '{@link org.emftext.language.office.impl.NamedElementImpl <em>Named Element</em>}' class.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @see org.emftext.language.office.impl.NamedElementImpl
   * @see org.emftext.language.office.impl.OfficePackageImpl#getNamedElement()
   * @generated
   */
	int NAMED_ELEMENT = 3;

	/**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
	int NAMED_ELEMENT__NAME = 0;

	/**
   * The number of structural features of the '<em>Named Element</em>' class.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
	int NAMED_ELEMENT_FEATURE_COUNT = 1;

	/**
   * The meta object id for the '{@link org.emftext.language.office.impl.OfficeModelImpl <em>Model</em>}' class.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @see org.emftext.language.office.impl.OfficeModelImpl
   * @see org.emftext.language.office.impl.OfficePackageImpl#getOfficeModel()
   * @generated
   */
	int OFFICE_MODEL = 0;

	/**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
	int OFFICE_MODEL__NAME = NAMED_ELEMENT__NAME;

	/**
   * The feature id for the '<em><b>Elements</b></em>' containment reference list.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
	int OFFICE_MODEL__ELEMENTS = NAMED_ELEMENT_FEATURE_COUNT + 0;

	/**
   * The number of structural features of the '<em>Model</em>' class.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
	int OFFICE_MODEL_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1;

	/**
   * The meta object id for the '{@link org.emftext.language.office.impl.OfficeElementImpl <em>Element</em>}' class.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @see org.emftext.language.office.impl.OfficeElementImpl
   * @see org.emftext.language.office.impl.OfficePackageImpl#getOfficeElement()
   * @generated
   */
	int OFFICE_ELEMENT = 4;

	/**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
	int OFFICE_ELEMENT__NAME = NAMED_ELEMENT__NAME;

	/**
   * The number of structural features of the '<em>Element</em>' class.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
	int OFFICE_ELEMENT_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0;

	/**
   * The meta object id for the '{@link org.emftext.language.office.impl.EmployeeImpl <em>Employee</em>}' class.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @see org.emftext.language.office.impl.EmployeeImpl
   * @see org.emftext.language.office.impl.OfficePackageImpl#getEmployee()
   * @generated
   */
	int EMPLOYEE = 1;

	/**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
	int EMPLOYEE__NAME = OFFICE_ELEMENT__NAME;

	/**
   * The feature id for the '<em><b>Works In</b></em>' reference.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
	int EMPLOYEE__WORKS_IN = OFFICE_ELEMENT_FEATURE_COUNT + 0;

	/**
   * The feature id for the '<em><b>Works With</b></em>' reference list.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
	int EMPLOYEE__WORKS_WITH = OFFICE_ELEMENT_FEATURE_COUNT + 1;

	/**
   * The number of structural features of the '<em>Employee</em>' class.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
	int EMPLOYEE_FEATURE_COUNT = OFFICE_ELEMENT_FEATURE_COUNT + 2;

	/**
   * The meta object id for the '{@link org.emftext.language.office.impl.OfficeImpl <em>Office</em>}' class.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @see org.emftext.language.office.impl.OfficeImpl
   * @see org.emftext.language.office.impl.OfficePackageImpl#getOffice()
   * @generated
   */
	int OFFICE = 2;

	/**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
	int OFFICE__NAME = OFFICE_ELEMENT__NAME;

	/**
   * The number of structural features of the '<em>Office</em>' class.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
	int OFFICE_FEATURE_COUNT = OFFICE_ELEMENT_FEATURE_COUNT + 0;


	/**
   * Returns the meta object for class '{@link org.emftext.language.office.OfficeModel <em>Model</em>}'.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @return the meta object for class '<em>Model</em>'.
   * @see org.emftext.language.office.OfficeModel
   * @generated
   */
	EClass getOfficeModel();

	/**
   * Returns the meta object for the containment reference list '{@link org.emftext.language.office.OfficeModel#getElements <em>Elements</em>}'.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Elements</em>'.
   * @see org.emftext.language.office.OfficeModel#getElements()
   * @see #getOfficeModel()
   * @generated
   */
	EReference getOfficeModel_Elements();

	/**
   * Returns the meta object for class '{@link org.emftext.language.office.Employee <em>Employee</em>}'.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @return the meta object for class '<em>Employee</em>'.
   * @see org.emftext.language.office.Employee
   * @generated
   */
	EClass getEmployee();

	/**
   * Returns the meta object for the reference '{@link org.emftext.language.office.Employee#getWorksIn <em>Works In</em>}'.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @return the meta object for the reference '<em>Works In</em>'.
   * @see org.emftext.language.office.Employee#getWorksIn()
   * @see #getEmployee()
   * @generated
   */
	EReference getEmployee_WorksIn();

	/**
   * Returns the meta object for the reference list '{@link org.emftext.language.office.Employee#getWorksWith <em>Works With</em>}'.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @return the meta object for the reference list '<em>Works With</em>'.
   * @see org.emftext.language.office.Employee#getWorksWith()
   * @see #getEmployee()
   * @generated
   */
	EReference getEmployee_WorksWith();

	/**
   * Returns the meta object for class '{@link org.emftext.language.office.Office <em>Office</em>}'.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @return the meta object for class '<em>Office</em>'.
   * @see org.emftext.language.office.Office
   * @generated
   */
	EClass getOffice();

	/**
   * Returns the meta object for class '{@link org.emftext.language.office.NamedElement <em>Named Element</em>}'.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @return the meta object for class '<em>Named Element</em>'.
   * @see org.emftext.language.office.NamedElement
   * @generated
   */
	EClass getNamedElement();

	/**
   * Returns the meta object for the attribute '{@link org.emftext.language.office.NamedElement#getName <em>Name</em>}'.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Name</em>'.
   * @see org.emftext.language.office.NamedElement#getName()
   * @see #getNamedElement()
   * @generated
   */
	EAttribute getNamedElement_Name();

	/**
   * Returns the meta object for class '{@link org.emftext.language.office.OfficeElement <em>Element</em>}'.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @return the meta object for class '<em>Element</em>'.
   * @see org.emftext.language.office.OfficeElement
   * @generated
   */
	EClass getOfficeElement();

	/**
   * Returns the factory that creates the instances of the model.
   * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
   * @return the factory that creates the instances of the model.
   * @generated
   */
	OfficeFactory getOfficeFactory();

	/**
   * <!-- begin-user-doc -->
	 * Defines literals for the meta objects that represent
	 * <ul>
	 *   <li>each class,</li>
	 *   <li>each feature of each class,</li>
	 *   <li>each enum,</li>
	 *   <li>and each data type</li>
	 * </ul>
	 * <!-- end-user-doc -->
   * @generated
   */
	interface Literals {
		/**
     * The meta object literal for the '{@link org.emftext.language.office.impl.OfficeModelImpl <em>Model</em>}' class.
     * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
     * @see org.emftext.language.office.impl.OfficeModelImpl
     * @see org.emftext.language.office.impl.OfficePackageImpl#getOfficeModel()
     * @generated
     */
		EClass OFFICE_MODEL = eINSTANCE.getOfficeModel();

		/**
     * The meta object literal for the '<em><b>Elements</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
     * @generated
     */
		EReference OFFICE_MODEL__ELEMENTS = eINSTANCE.getOfficeModel_Elements();

		/**
     * The meta object literal for the '{@link org.emftext.language.office.impl.EmployeeImpl <em>Employee</em>}' class.
     * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
     * @see org.emftext.language.office.impl.EmployeeImpl
     * @see org.emftext.language.office.impl.OfficePackageImpl#getEmployee()
     * @generated
     */
		EClass EMPLOYEE = eINSTANCE.getEmployee();

		/**
     * The meta object literal for the '<em><b>Works In</b></em>' reference feature.
     * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
     * @generated
     */
		EReference EMPLOYEE__WORKS_IN = eINSTANCE.getEmployee_WorksIn();

		/**
     * The meta object literal for the '<em><b>Works With</b></em>' reference list feature.
     * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
     * @generated
     */
		EReference EMPLOYEE__WORKS_WITH = eINSTANCE.getEmployee_WorksWith();

		/**
     * The meta object literal for the '{@link org.emftext.language.office.impl.OfficeImpl <em>Office</em>}' class.
     * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
     * @see org.emftext.language.office.impl.OfficeImpl
     * @see org.emftext.language.office.impl.OfficePackageImpl#getOffice()
     * @generated
     */
		EClass OFFICE = eINSTANCE.getOffice();

		/**
     * The meta object literal for the '{@link org.emftext.language.office.impl.NamedElementImpl <em>Named Element</em>}' class.
     * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
     * @see org.emftext.language.office.impl.NamedElementImpl
     * @see org.emftext.language.office.impl.OfficePackageImpl#getNamedElement()
     * @generated
     */
		EClass NAMED_ELEMENT = eINSTANCE.getNamedElement();

		/**
     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
     * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
     * @generated
     */
		EAttribute NAMED_ELEMENT__NAME = eINSTANCE.getNamedElement_Name();

		/**
     * The meta object literal for the '{@link org.emftext.language.office.impl.OfficeElementImpl <em>Element</em>}' class.
     * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
     * @see org.emftext.language.office.impl.OfficeElementImpl
     * @see org.emftext.language.office.impl.OfficePackageImpl#getOfficeElement()
     * @generated
     */
		EClass OFFICE_ELEMENT = eINSTANCE.getOfficeElement();

	}

} //OfficePackage
